package cn.javabb.config;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RetryRule;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @desc: SpringCloud相关配置
 * @author: javabb (javabob(a)163.com)
 * @create: 2020/05/28 22:05
 */
@Configuration
public class SpringCloudConfig {
    /**
     * 调用服务模版对象
     * @return
     */
    @Bean
    @LoadBalanced //引入ribbon负载均衡
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }

    /**
     * 自定义轮询算法
     * 在一个配置时间段内当选择server不成功，则一直尝试使用subRule的方式选择一个可用的server
     * @return
     */
    @Bean
    public IRule myRule() {
        return new RetryRule();
    }

}
